package abstract_factory

type DeviceInfo struct {
	iID int
	sName string
	sType DeviceType
	sVendor string
	sModel string
}

type DeviceType string
const DeviceTypeLight DeviceType = "Light"
const DeviceTypeAirConditioner DeviceType = "AirConditioner"

func NewDeviceInfo(id int, name string, devType DeviceType, vendor string, model string) *DeviceInfo {
	return &DeviceInfo{
		id, name, devType, vendor, model,
	}
}

func (me *DeviceInfo) ID() int {
	return me.iID
}

func (me *DeviceInfo) Name() string {
	return me.sName
}

func (me *DeviceInfo) Vendor() string {
	return me.sVendor
}

func (me *DeviceInfo) GetType() DeviceType {
	return me.sType
}